package user

import (
	"context"
	"net/http"
	"time"

	"github.com/gin-gonic/gin"
	common "test.com/project-common"
	"test.com/project-common/errs"

	"test.com/project-user/pkg/dao"
	"test.com/project-user/pkg/repo"
	loginServiceV1 "test.com/project-user/pkg/service/login.service.v1"
)
type HandlerUser struct {
	cache repo.Cache

}

func New() *HandlerUser {
	return &HandlerUser{
		cache: dao.Rc,
	}
}

func (h *HandlerUser) getCaptcha(ctx *gin.Context) {
	result := &common.Result{}

	//获取参数
	mobile := ctx.PostForm("mobile")
	c, cancel := context.WithTimeout(context.Background(), 2*time.Second)
	defer cancel()



	rsp, error := LoginServiceClient.GetCaptcha(c, &loginServiceV1.CaptchaMessage{Mobile: mobile})
	if error != nil {  
		code,msg := errs.ParseGrpcError(error)
		ctx.JSON(http.StatusOK, result.Fail(code, msg))
		return
	}
	  ctx.JSON(http.StatusOK, result.Success(rsp.Code))

	// result := &common.Result{}

	// 	//获取参数
	// 	mobile := ctx.PostForm("mobile")

	// 	//校验参数
	// 	if !common.VerifyMobile(mobile) {
	// 		ctx.JSON(http.StatusOK, rsp.Fail(model.NoLegalMobile, "手机号码格式错误"))
	// 	}

	// 	//生成验证码(随机4位1000-9999 或者6位)
	// 	code := "123456"

	// 	//调用短信平台(三方 放入 go协程可以快速响应)

	// 	go func() {
	// 		time.Sleep(2 * time.Second)
	// 		zap.L().Info("短信平台调用成功，发送短信 INFO")
	// 		logs.LG.Debug("短信平台调用成功，发送短信 debug")
	// 		zap.L().Error("短信平台调用成功，发送短信 error")
	// 		//redis 后续缓存可能存在mysql当中 也可能存在mongo中 也可能存在memcache中
	// 		//5 存储验证码 redis 当中 过期时间15分钟
	// 		c, cancel := context.WithTimeout(context.Background(), 2*time.Second) //这个操作做多能操作多长时间
	// 		defer cancel()
	// 		err := h.cache.Put(c, "REGISTER_"+mobile, code, 15*time.Minute)
	// 		log.Printf("将手机号和验证码存入redis中 ：REGISTER_%s:%s/n", mobile, code)
	// 		if err != nil {
	// 			log.Println("验证码存入redis出错", err)
	// 			return
	// 		}
	// 	}()

	// 	ctx.JSON(http.StatusOK, rsp.Success(code))

}